package com.azdebugit.spring.condition.condition.enable.test;

import com.azdebugit.spring.auto.enable.test.TestCondition;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

import java.util.Map;

public class HelloWorldCondition implements Condition {
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
    	// 这里的annotatedTypeMetadata可以获取指定类的一些属性（TestCondition是我自己新建的一个注解）
        Map<String, Object> attrs = annotatedTypeMetadata.getAnnotationAttributes(TestCondition.class.getName());
        // 这里是获取这个注解的属性
        String name = String.valueOf(attrs.get("name"));
        String value = String.valueOf(attrs.get("value"));
        // 这里我直接获取了系统配置的值，用来进行判断
        String propertyName = System.getProperty(name);
        return propertyName.equals(value);
    }
}